package es.ucm.fdi.bdt.controller.impl.management;

import es.ucm.fdi.bdt.controller.impl.management.pastry.HistoricBalanceManager;
import es.ucm.fdi.bdt.controller.impl.management.pastry.BillingManager;
import es.ucm.fdi.bdt.controller.impl.management.pastry.OntologyManager;
import es.ucm.fdi.bdt.controller.impl.management.pastry.LendingManager;
import es.ucm.fdi.bdt.controller.impl.management.pastry.ReputationManager;
import es.ucm.fdi.bdt.controller.impl.management.pastry.ServiceManager;
import es.ucm.fdi.bdt.controller.impl.management.pastry.UserManager;
import es.ucm.fdi.bdt.controller.interfaces.management.IBillingManager;
import es.ucm.fdi.bdt.controller.interfaces.management.IHistoricBalanceManager;
import es.ucm.fdi.bdt.controller.interfaces.management.ILendingManager;
import es.ucm.fdi.bdt.controller.interfaces.management.IManager;
import es.ucm.fdi.bdt.controller.interfaces.management.IOntologyManager;
import es.ucm.fdi.bdt.controller.interfaces.management.IReputationManager;
import es.ucm.fdi.bdt.controller.interfaces.management.IServiceManager;
import es.ucm.fdi.bdt.controller.interfaces.management.IUserManager;

public class Manager implements IManager {

	private IHistoricBalanceManager bh;
	private IBillingManager f;
	private IOntologyManager o;
	private ILendingManager p;
	private IReputationManager r;
	private IServiceManager s;
	private IUserManager u;
	
	public Manager(boolean pastry) {

		if (pastry){
			
			bh = new HistoricBalanceManager();
			f = new BillingManager();
			o = new OntologyManager();
			p = new LendingManager();
			r = new ReputationManager();
			s = new ServiceManager();
			u = new UserManager();			
			
		} else {
			// chord...
		}
		
	}

	@Override
	public IHistoricBalanceManager getHistoricBalanceManager() {
		return bh;
	}

	@Override
	public IBillingManager getBillingManager() {
		return f;
	}

	@Override
	public IOntologyManager getOntologyManager() {
		return o;
	}

	@Override
	public ILendingManager getLendingManager() {
		return p;
	}

	@Override
	public IReputationManager getReputationManager() {
		return r;
	}

	@Override
	public IServiceManager getServiceManager() {
		return s;
	}

	@Override
	public IUserManager getUserManager() {
		return u;
	}

}
